package day12;

import org.junit.Test;

public class Demo {

	@Test
	public void test1() {
		String string = new String("abc");
		MyDoor myDoor = new MyDoor();
		myDoor.alarm();
		myDoor.open();
		myDoor.close();
		
		OtherDoor otherDoor = new OtherDoor();
		otherDoor.close();
		otherDoor.open();
	}
	
	@Test
	public void test2() {
		// 声明成父类类型，new子类（继承什么就是什么）
		// 声明成什么类型，就是站在声明的类型的角度去看new出来这个对象
		// 站在AbstractDoor去看MyDoor的话，只能看到open()和close()方法
		AbstractDoor door = new MyDoor();
		door.open();
		door.close();
		// The method alarm() is undefined for the type AbstractDoor
		// door.alarm();
		
		door = new OtherDoor();
		door.close();
		door.open();
	}
	
}
